package com.shujia.thread_contr;

/*
每个线程执行时都有具有一定的优先级，优先级高的线程可能获得较多的执行机会，而优先级低的线程则可能获得较少的执行机会。
每个线程默认的优先级都与创建它的父线程具有相同的优先级，默认情况下，main线程的具有普通优先级，由main线程创建的子线程也有普通优先级。
Thread提供了setPriority(int newPriority)和getPriority()方法来设置和返回指定线程的优先级，其中setPriority方法的参数可以是一个整数，范围是1～10之间，也可以使Thread类的三个静态常量：
MAX_PRIORITY：其值是10。
MIN_PRIORITY：其值是1。
NORM_PRIORITY：其值是5。

 */
public class PriorityDemo {


    public static void main(String[] args) {
        int priority = Thread.currentThread().getPriority();
        System.out.println(priority);

        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 100; i++) {
                    System.out.println(Thread.currentThread().getName() + ":" + i);
                }
            }
        }, "线程1");

        Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 100; i++) {
                    System.out.println(Thread.currentThread().getName() + ":" + i);
                }
            }
        }, "线程2");


        t1.setPriority(6);

        t2.setPriority(7);

        t1.start();
        t2.start();

    }
}
